using System;
using System.Collections;
using System.Security.Principal;
using System.Web;
using System.Web.Profile;
using System.Web.SessionState;

namespace WebMonitor.Http {
    /// <summary>
    /// Summary description for IHttpContext.
    /// </summary>
    public interface IHttpContext : IServiceProvider {
        Exception[] AllErrors { get; }
        IHttpApplicationState Application { get; }
        IHttpApplication ApplicationInstance { get; }
        ICache Cache { get; }
        Exception Error { get; }
        IHttpHandler Handler { get; set; }
        bool IsCustomErrorEnabled { get; }
        bool IsDebuggingEnabled { get; }
        IDictionary Items { get; }
        IHttpRequest Request { get; }
        IHttpResponse Response { get; }
        IHttpServerUtility Server { get; }
        IHttpSessionState Session { get; }
        bool SkipAuthorization { get; set; }
        DateTime Timestamp { get; }
        TraceContext Trace { get; }
        IPrincipal User { get; set; }
        ProfileBase Profile { get; }

        void AddError(Exception errorInfo);
        void ClearError();
        object GetSection(string name);
        void RewritePath(string path);
        void RewritePath(string filePath, string pathInfo, string queryString);
    }
}